package com.zlx.xBiaoShop.service;

import com.zlx.xBiaoShop.utils.RandomUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.stereotype.Service;

import java.util.concurrent.TimeUnit;

/**
 * @ClassName IMailService
 * @Description TODO
 * @Author Edward
 * @Date 2020/11/20 21:37
 */
@Service
public class IMailService {

    /**
     * Spring Boot 提供了一个发送邮件的简单抽象，使用的是下面这个接口，这里直接注入即可使用
     */
    @Autowired
    private JavaMailSender mailSender;

    @Autowired
    private RedisTemplate<String,String> redisTemplate;

    /**
     * 配置文件中我的qq邮箱
     */
    @Value("${spring.mail.properties.from}")
    private String from;


    /**
     * 简单文本邮件
     * @param to 收件人
     */
    public void sendSimpleMail(String to) {
        //创建SimpleMailMessage对象
        SimpleMailMessage message = new SimpleMailMessage();
//        //邮件发送人
        message.setFrom(from);
        //邮件接收人
        message.setTo(to);
        //邮件主题
        message.setSubject("小标会议验证码");
        //生成随机验证码
        String random = RandomUtil.getRandom();
        //缓存验证码
        redisTemplate.opsForValue().set("com.zlx.xbhy.service.impl.IMailServiceImpl:"+to,random,60, TimeUnit.SECONDS);
        //邮件内容
        message.setText("您好，您的验证码是："+random);
        //发送邮件
        mailSender.send(message);
    }
}
